### 包的初始化文件
import os
import glob
import importlib

# 可选：定义包的版本信息
__version__ = "1.1.0"

# 可选：声明可导出的公共API
__all__ = []

# 自动检测并导入目录下的所有类文件
package_dir = os.path.dirname(__file__)
modules = glob.glob(os.path.join(package_dir, "*.py"))

# 定义模块到类的映射关系
module_class_mapping = {
    'LaDb': 'LaDb',
    'AsyncLaDb': 'AsyncLaDb',
    'LaDbc': 'LaDbc',
    'LaDbcs': 'LaDbcs',
    'PgLaDb': 'PgLaDb',
    'AsyncPgLaDb': 'AsyncPgLaDb',
}

# 自动尝试导入所有类
for module_file in modules:
    module_name = os.path.basename(module_file)[:-3]  # 移除 .py 后缀
    
    # 跳过私有模块
    if module_name.startswith('_'):
        continue
        
    # 检查是否在映射关系中
    if module_name in module_class_mapping:
        class_name = module_class_mapping[module_name]
        try:
            # 使用类似显式导入的方式
            module = importlib.import_module(f'.{module_name}', package=__name__)
            cls = getattr(module, class_name)
            globals()[class_name] = cls
            __all__.append(class_name)
        except (ImportError, AttributeError):
            # 忽略导入错误，可能是依赖不满足或类不存在
            pass